package org.example.demo.publish;

import lombok.extern.slf4j.Slf4j;
import org.example.annotation.NotRecommend;
import org.example.annotation.NotThreadSafe;

/**
 * 对象逸出： 一种错误的发布，当一个对象还没有构建完成时，就使它被其他线程所见
 */
@Slf4j
@NotThreadSafe
@NotRecommend
public class Escape {

    private int thisCanBeEscape = 0;

    public Escape (){
        new InnerClass();
    }

    private class InnerClass{
        public InnerClass(){
            log.info("{}",Escape.this.thisCanBeEscape);
        }
    }

    public static void main(String[] args) {
        new Escape();
    }
}
